function Figure_Pair(Folder,SS,List_IRF,List_IRFLabel)

% List_IRF    =   {IRF_Baseline,IRF_ER_Fixed};
% List_IRFLabel=  {'Flexible Exchange Rate','Fixed Exchange Rate'};

% Setup
mkdir(Folder);
T_IRF           =   12;
XT              =   0+(0:1:T_IRF)';
List_Shock      =   {'Eps_Eta_M_dom','Eps_Eta_M_ext','Eps_Eta_Y_H','Eps_Eta_p_F',...
                     'Eps_Eta_Z','Eps_Eta_Z_N','Eps_Eta_Z_H'};

%% Flexible vs. Fixed: Aggregate Consumption
%--------------------------------------------------------------------------
% Setup
%--------------------------------------------------------------------------
N_col       =   1;
N_row       =   1;
fig_size    =   [N_col,N_row].*[1,0.75]*1/2.5; 
fig_gap     =   [0.02,0.02];
fig_VMargin =   [0.15,0.02];
fig_HMargin =   [0.15,0.02]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

LEG         =   @(PH,LabelList)legend(PH,LabelList,'fontsize',8,'interpreter','latex','location','best');
XLabel      =   @(Label)xlabel(Label,'fontsize',8,'interpreter','latex');
YLabel      =   @(Label)ylabel(Label,'fontsize',8,'interpreter','latex');

AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.1f'),...
                        'FontSize',struct('X',8,'Y',8),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',0).Setup(Y);

TempFun_LP  =   @(S,C,D)GR_Line('Style',S,'Color',MyColor(C, D),'Width',3);
List_LP     =   {TempFun_LP('-','Black',1); TempFun_LP('--','Black',0.6)};

parfor ii_Sh=1:length(List_Shock)
    SH          =   List_Shock{ii_Sh};

    % Consumption: Aggregate
    TempIRF         =   zeros(length(List_IRF),T_IRF+1);
    for ii_irf=1:length(List_IRF)
        TempIrf         =    List_IRF{ii_irf}.(SH).C*100;
        TempIRF(ii_irf,:)=   TempIrf(:,1:T_IRF+1);
    end

    Fig         =   FigureSetup(['Consumption Dispersion to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state (pp)');
    LEG(PH,List_IRFLabel);

    print('-depsc','-r1000',Fig,[Folder,'C_',SH]);
    close(Fig);
    
    % Consumption: Dispersion (Non-Normalized)
    TempIRF         =   zeros(length(List_IRF),T_IRF+1);
    for ii_irf=1:length(List_IRF)
        TempIrf         =    List_IRF{ii_irf}.(SH).ConsDist.Disp(1,:)*100;
        TempIRF(ii_irf,:)=   TempIrf(:,1:T_IRF+1);
    end
    
    Fig         =   FigureSetup(['Consumption Dispersion to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state');
    LEG(PH,List_IRFLabel);

    print('-depsc','-r1000',Fig,[Folder,'ConsDisp_DevDisp_Level_',SH]);
    close(Fig);
    
    % Consumption: Dispersion (Normalized)
    TempIRF         =   zeros(length(List_IRF),T_IRF+1);
    for ii_irf=1:length(List_IRF)
        [MaxAbsC_Val,MaxAbsC_Idx] ...
                        =   max(abs(List_IRF{ii_irf}.(SH).C));
        TempIrf         =    List_IRF{ii_irf}.(SH).ConsDist.Disp(1,:)/MaxAbsC_Val;
        TempIRF(ii_irf,:)=   TempIrf(:,1:T_IRF+1);
    end
   
    Fig         =   FigureSetup(['Consumption Dispersion to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state');
    LEG(PH,List_IRFLabel);

    print('-depsc','-r1000',Fig,[Folder,'ConsDisp_DevDisp_Normalized_',SH]);
    close(Fig);
end



%% Appendix
TempDict    =   @(L,S)struct('Scale',S,'Label',L);
VarDict     =   struct('C',TempDict('Consumption',1e2), ...
                       'C_N',TempDict('Consumption: N',1e2),...
                       'C_H',TempDict('Consumption: H',1e2),...
                       'C_F',TempDict('Consumption: F',1e2),...
                       'L_N',TempDict('Hours: N',1e2),'L_H',TempDict('Hours: H',1e2),...
                       'w_N',TempDict('Real wage: N',1e2),'w_H',TempDict('Real wage: H',1e2),...
                       'Y_N',TempDict('Output: N',1e2),'Y_H',TempDict('Output: H',1e2),...
                       'ir',TempDict('Domestic nominal rate',1e2*4),'dE',TempDict('Depreciation',1e2*4),...
                       'Pir',TempDict('Inflation',1e2*4), 'Pir_N',TempDict('Inflation: N',1e2*4), ... 
                       'Pir_H',TempDict('Inflation: H',1e2*4), 'Pir_F',TempDict('Inflation: F',1e2*4), ...
                       'DevUIP',TempDict('UIP deviation',1e2*4),'RelPrice',TempDict('Relative price',10e2),...
                       'DomShare_Pos', TempDict('Domestic share: saver ($\alpha^{+}$)',1e2), 'DomShare_Neg', TempDict('Domestic share: borrower ($\alpha^{-}$)',1e2),...
                       'AggDomesticAsset', TempDict('Private domestic bond holdings ($q_{Dt}B_{ss}$)',10e2),...
                       'AggForeignAsset', TempDict('Private external bond holdings',1e2), ...
                       'CurAccIdx', TempDict('Current Account/Output',10e2),'RealER',TempDict('Real exchange rate',10e2) ...
                       );
                       
VarList     =   fieldnames(VarDict);

% Graph
Num_Var     =   length(VarList);
Num_Shock   =   length(List_Shock);

N_col       =   4;
N_row       =   ceil(Num_Var/N_col);
fig_size    =   [N_col,N_row].*[1,0.75]*1/4;  
fig_gap     =   [0.04,0.04];
fig_VMargin =   [0.03,0.03];
fig_HMargin =   [0.04,0.01]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.2g'),...
                        'FontSize',struct('X',6,'Y',6),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',1,'MinUnit',0.01).Setup(Y);


TempFun_LP  =   @(S,C,D)GR_Line('Style',S,'Color',MyColor(C, D),'Width',3);
List_LP     =   {TempFun_LP('-','Black',1); TempFun_LP('--','Black',0.6)};

for ii_sh=1:Num_Shock
    SH          =   List_Shock{ii_sh};
    fig_Handle  =   FigureSetup(['IRF-',SH],fig_size);
    for ii_vv=1:Num_Var
        VV              =   VarList{ii_vv};
        ax              =   fig_SubPlot(ii_vv);
        TempIRF         =   zeros(length(List_IRF),T_IRF+1);
        for ii_IRF=1:length(List_IRF)
            IRF             =   List_IRF{ii_IRF};
            if strcmp(VV,'dE_Real')
                TempIrf         =   IRF.(SH).dE-IRF.(SH).Pir;
            elseif strcmp(VV,'E')
                TempIrf         =   cumsum(IRF.(SH).dE);
            elseif strcmp(VV,'CPI')
                TempIrf         =   cumsum(IRF.(SH).Pir);
            elseif strcmp(VV,'RealER')
                TempIrf         =   -IRF.(SH).RelPrice;
            else
                TempIrf         =   IRF.(SH).(VV);
            end
            TempIRF(ii_IRF,:)   =   TempIrf(:,1:T_IRF+1);
        end
        TempIRF(abs(TempIRF)<1e-6)  =   0;
        TempIRF     =   TempIRF*VarDict.(VV).Scale;
        [PH,ax]     =   Plot_IRF(TempIRF,'ax',ax,'LineProperty',List_LP,...
                                 'XTick',Tick_X(XT),'YTick',Tick_Y(TempIRF),...
                                 'AxisProperty',AxisSetup,'Symmetric',1);
        title(VarDict.(VV).Label,'fontsize',8,'interpreter','latex');

    end

    print(fig_Handle,[Folder,'Full_',SH],'-depsc'); 
    close(fig_Handle);
end


%% Web Plots
N_col       =   1;
N_row       =   1;
% fig_size    =   [N_col,N_row].*[1,1]*1/3; 
fig_size    =   [N_col,N_row].*[1.05,0.9]*1/2.5;

AxFontSize  =   8;
%--------------------------------------------------------------------------
% Webplot, by FI x RI
%--------------------------------------------------------------------------
fig_gap     =   [0.00,0.00];
fig_VMargin =   [0.00,0.00];
fig_HMargin =   [0.00,0.00]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

LEG         =   @(LabelList)legend(LabelList,'fontsize',AxFontSize,'interpreter','latex',...
                                              'location','southoutside','Orientation','Vertical');
                                            
                                            
parfor jj=1:length(List_Shock)
    SH          =   List_Shock{jj};
    TempList    =   cell(1,length(List_IRF));
    for ii=1:length(List_IRF)
        TempList{ii}    =   List_IRF{ii}.(SH);
    end
    % Normalized
    Fig         =   FigureSetup(['Distributional Effect by FIxRI'],fig_size);
    ax          =   fig_SubPlot(1);
    TempFun_WebPlot(TempList);
    LEG(List_IRFLabel);
    
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_AvgDevByFIxRI_',SH]);
    close(Fig);
    
    Fig         =   FigureSetup(['Web Plot, Distributional Effect by FI x RI, Normalized, Simplified'],fig_size);
    ax          =   fig_SubPlot(1);
    TempFun_WebPlot_4Dim(TempList);
     LEG(List_IRFLabel);
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_AvgDevByFIxRI_Simplified_',SH]);
    close(Fig);
end
